package com.example.erat.repository;

import com.example.erat.entity.ClassEntity;
import com.example.erat.entity.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 学生数据访问层
 */
@Repository
public interface StudentRepository extends JpaRepository<Student, Long> {
    
    /**
     * 根据学号查询学生
     */
    Student findByStudentId(String studentId);
    
    /**
     * 判断学号是否存在
     */
    boolean existsByStudentId(String studentId);
    
    /**
     * 根据班级查询学生列表
     */
    List<Student> findByClassEntity(ClassEntity classEntity);
    
    /**
     * 根据班级ID查询学生列表
     */
    List<Student> findByClassEntityId(Long classId);
    
    /**
     * 根据学号模糊查询学生
     */
    List<Student> findByStudentIdContaining(String studentId);
    
    /**
     * 根据姓名模糊查询学生
     */
    List<Student> findByNameContaining(String name);
} 